1.AWS Lambda是什麼?
AWS Lambda是一個運算服務,可以讓使用者執行程式碼,本身沒有伺服器,只需要為運算時間來收取費用。另外可用AWS Lambda來處理事件,例如可以變更S3的儲存貯體、資料庫的內容等等,在程式語言的選擇方面也很多元包括 Node.js、Java、C#、Go、Ruby和 Python,當然每當程式碼執行的時候,都會有執行紀錄,並且也可以把執行後的日誌存在AWS Cloudwatch,不過由於考試並不會考得太深入,所以不會寫程式,而是示範如何創建一個AWS Lambda函式並做一個簡單的介面介紹。
2.實際動手做 - 用Lambda創建函式及測試
Step.1 先點選Lambda
Step.2 選擇建立函式
Step.3 接下來要輸入函式的名稱,以及下方的「運行時間」要選擇你要的程式語言,這邊應該是因為中文直翻才會顯示運行時間(Runtime),這邊應該要翻成執行環境會比較好,不過這邊選什麼都可以,因為此範例並沒有要寫程式。輸入完後請點選下方「建立函式」。
Step.4 如此就創建好一個新的函數了,接下來要使用Lambda提供的範例事件來叫用Lambda函數。首先在上方選擇測試(最多可擁有十個測試),並輸入一個事件名稱,再來可以看到下方已經有一個簡單的鍵值測試碼,不用修改,直接選擇「建立」。
Step.5 再按一次「測試」即可看到執行結果,因為都是預設的所以理所當然是成功的,可以選擇「按一下這裡」將此日誌新增到對應至 Lambda 函式之日誌群組中的 Amazon CloudWatch。
3.快速認識Lamdba介面
1.設計師
這個設計工具會顯示您的函數,還有上游及下游的資源概觀,可以在這個工具新增觸發條件、層級還有目的地。
2.函式程式碼
可以在此區右上方撰寫程式,可以看到右上方可以設定為全螢幕,也可以透過齒輪來做更多設定。右下方則是測試後的結果,從此圖中也可看到是成功的。
3.環境變數
可以使用環境變數可以在更安全的環境下調整函數。
4.AWS X-Ray
只要有啟用,函式會將追蹤資料傳至X-Ray,而X-Ray也會處理資料並產生服務映射和可搜尋的追蹤摘要。
5.CloudWatch指標
AWS Lambda會自動監控Lambda函式,並且是透過CloudWatch來顯示指標,也可以調整要自動監控的間隔時間,並且設定警示條件。
4.考前重點大補帖
⦁ AWS Lambda只需為使用的運算付費。
⦁ AWS Lambda不必佈建或管理伺服器。
⦁ AWS Lambda有提供多種程式語言供選擇。
⦁ AWS Lambda執行後的日誌存在AWS CloudWatch。
⦁ AWS Lambda與X-Ray整合,讓您能夠追蹤、偵錯和最佳化 Lambda 應用程式。
⦁ 使用 AWS Lambda 建立 Web 後端可以建立各種功能強大且能自動擴展和縮減規模的 Web 應用程式。
⦁ AWS Lambda入門的第一步就是「上傳程式碼」。
⦁ AWS Lambda提供所有的管理,包括包括伺服器和作業系統維護、容量佈建以及Auto Scaling、程式碼監控和記
錄。
5.經典歷屆試題
單選題
《詳解》
Amazon EC2有伺服器。Amazon DynamoDB是一個非關連式的資料庫。
下列何者AWS服務為無伺服器平台?
A. Amazon EMR
B. Elastic Load Balancing
C. AWS Lambda
D. AWS Mobile Hub
正解:C
下列哪一個選項全部的AWS服務都為無伺服器平台?
A. Amazon EC2, Amazon S3, Amazon Athena
B. Amazon Kinesis, Amazon SQS, Amazon EMR
C. AWS Step Functions, Amazon DynamoDB, Amazon SNS
D. Amazon Athena, Amazon Cognito, Amazon EC2
正解:C
《詳解》
無伺服器是為了免除基礎架構管理工作,讓開發者可將時間用在應用程式的開發跟管理,無需擔心伺服器。目前根據AWS官網公告,以下都為無伺服器平台:
運算:AWS Lambda、AWS Fargate
儲存:Amazon S3、Amazon EFS
資料存放區:Amazon DynamoDB、Amazon Aurora Serverless、Amazon RDS Proxy
API代理:Amazon API Gateway
應用程式整合:Amazon SNS、Amazon SQS、AWS AppSync、Amazon EventBridge
協調:AWS Step Functions
分析:Amazon Kinesis、Amazon Athena
1.AWS Elastic Beanstalk是什麼?
AWS Elastic Beanstalk可快速的將應用程式部署進AWS雲端。它是一種平台即服務(PaaS),也就是AWS已經建立好全套的基礎措施和平台,身為使用者的我們只需要上傳程式碼到平台(支援多種平台)上就可以了。而且AWS Elastic Beanstalk為了減少管理的複雜性會自動幫忙管理,包括容量佈建、負載平衡、自動調整規模、應用程式監控都無需另外操心,當然也可以個別自行調整。
2.部署及更新
在AWS Elastic Beanstalk只要一開始先撰寫好程式碼並上傳,就可以在雲端中啟用所有會用到的環境,並且可以自動管理,也可以向上方的圖一樣部署或更新版本。透過這個循環,在雲端上部署應用程式就會跟以往部署應用程式在地端一樣輕鬆簡單。
3.考前重點大補帖
⦁ 可在AWS Elastic Beanstalk創建熟悉的環境並部署自己開發的應用程式
⦁ AWS Elastic Beanstalk可以手動或自動管理
4.經典歷屆試題
多選題
《詳解》
AWS Elastic Beanstalk可讓開發人員更輕鬆地在AWS Cloud中部署應用程式,與本題無關。
AWS OpsWorks提供了Chef和Puppet兩種組態管理服務,Chef和Puppet可以自動透過程式碼設定伺服器,換句話說,可以設定如何在EC2之間和本地部署伺服器中進行管理。
AWS CodeDeploy是一個自動且全面的部署服務,它可以將停機的時間降到最低且順利的將應用程式部署到各種運算服務,包括Amazon EC2、AWS Lambda及本地伺服器等等。
AWS Batch是一個可讓開發人員一次處理大量運算任務的服務,與本題無關。
AWS X-Ray是一個端對端的追蹤服務,從開發到生產都可以輕鬆地分析應用程式,與本題無關。